﻿--树形机构表
CREATE TABLE ORGANIZATION
(
	ORGANIZATION_ID varchar(20) not null,--机构id
	ORGANIZATION_NAME varchar(100),--机构名称
	ORGANIZATION_DESC varchar(300),--机构名称
	PARENT_ORGANIZATION_ID varchar(20),--父节点机构id
	IS_WH varchar(1) NOT NULL,--是否是仓库，是否存货
	IS_GLOBAL varchar(1) NOT NULL,--是否全局
	IS_ACTIVE varchar(1) NOT NULL,--是否活动
	ARGMENT1 varchar(50) NOT NULL,--参数1
	ARGMENT2 varchar(50) NOT NULL,--参数2
	ARGMENT3 varchar(250) NOT NULL,--参数3
	ARGMENT4 varchar(250) NOT NULL,--参数4
	CREATED_BY varchar(20) NOT NULL,
	CREATED_DATE datetime NOT NULL,
	UPDATED_BY varchar(20) NOT NULL,
	UPDATED_DATE datetime NOT NULL,
	PRIMARY KEY(ORGANIZATION_ID)
)

--仓库信息
CREATE TABLE  WH_CONFIG
(
	WH_ID varchar(20) NOT NULL,--'10' 全局仓库，其他20开始是自定义仓库
	WH_NAME varchar(30) NOT NULL,--仓库名字 10 '全局仓库'
	WH_DESC varchar(50) NOT NULL,--仓库名字
	IS_GLOBAL varchar(1) NOT NULL,--是否全局
	IS_ACTIVE varchar(1) NOT NULL,--是否活动
	CREATED_BY varchar(20) NOT NULL,
	CREATED_DATE datetime NOT NULL,
	UPDATED_BY varchar(20) NOT NULL,
	UPDATED_DATE datetime NOT NULL,
	PRIMARY KEY(WH_ID)
 )
--wms仓库用户
CREATE TABLE WMS_USER
(
	USER_ID varchar(20) NOT NULL,--用户id
	USER_NAME varchar(40) NULL,--用户名
	PASSWD varchar(200) NOT NULL,--密码
	PASSWD_DATE datetime NULL,--密码重设日期
	EXPIRE_DATE datetime NULL,--密码过期日期
	IS_LOGIN varchar(1) NULL,--是否已经登录
	IS_DOMAIN_USER varchar(1) NOT NULL,--是否是域用户，也就是是否是全局用户，可以访问多个仓库
	USER_STATUS int NULL,--用户状态，1，使用中，0，作废中
	IS_LOCKED varchar(1) NOT NULL,--是否锁定，1，锁定，0，未锁定
	LOCK_DATE datetime NULL,--锁定日期
	CITY varchar(50) NULL,--城市
	USER_STATE varchar(20) NULL,--用户状态：
	ZIP varchar(20) NULL,--邮编
	COUNTRY varchar(30) NULL,--国家
	COUNTRY_CODE varchar(20) NULL,--国家代码
	USER_ADDRESS varchar(200) NULL,--用户地址
	MOBILE varchar(20) NULL,--移动电话
	PHONE varchar(20) NULL,--电话
	FAX varchar(20) NULL,--传真
	EMAIL varchar(50) NULL,--电邮
	DEPARTMENT varchar(50) NULL,--部门
	IS_WH_USER varchar(1) NOT NULL,--是否仓库用户，1，是，0，否
	IS_ACTIVE varchar(1) NOT NULL,--是否使用中
	SYSTEM_CREATED varchar(1) NOT NULL,--系统创建日期
	CREATED_BY varchar(20) NOT NULL,
	CREATED_DATE datetime NOT NULL,
	UPDATED_BY varchar(20) NOT NULL,
	UPDATED_DATE datetime NOT NULL,	
	PRIMARY KEY(USER_ID)
 )
 go
 --插入管理员
 insert into WMS_USER(USER_ID,USER_NAME,PASSWD,PASSWD_DATE,EXPIRE_DATE,IS_LOGIN,IS_DOMAIN_USER,USER_STATUS
,IS_LOCKED,LOCK_DATE,CITY,USER_STATE,ZIP,COUNTRY,COUNTRY_CODE,USER_ADDRESS,MOBILE
      ,PHONE,FAX,EMAIL,DEPARTMENT,IS_WH_USER,IS_ACTIVE,SYSTEM_CREATED,CREATED_BY,CREATED_DATE,UPDATED_BY,UPDATED_DATE) values
      ('admin','管理员','7a57a5a743894a0e','2011-11-11','2011-11-11','1','1',1,'0','2011-11-11',
      '','','','','','','','','','',      '','1','1','1','admin','2011-11-11','admin','2011-11-11')
go


 --用户登录历史记录
CREATE TABLE SYS_LOGIN_LOG(
	LOGIN_SEQUENCE int IDENTITY(1,1) NOT NULL,
	LOGIN_USER_ID varchar(20) NOT NULL,
	LOGIN_USER_NAME varchar(40) NULL,
	LOGIN_STATUS varchar(10) NULL,
	LOGIN_MODE varchar(50) NULL,
	LOGIN_IP_ADDRESS varchar(50) NULL,
	LOGIN_MACHINE_NAME varchar(100) NULL,
	LOGIN_MAC_ADDRESS varchar(50) NULL,
	LOGIN_TIME datetime NULL,
	LOGOUT_TIME datetime NULL,
	CREATED_BY varchar(20) NOT NULL,
	CREATED_DATE datetime NOT NULL,
	UPDATED_BY varchar(20) NULL,
	UPDATED_DATE datetime NULL,
	PRIMARY KEY(LOGIN_SEQUENCE)
)

--角色列表
CREATE TABLE ROLE(
	ROLE_ID varchar(20) NOT NULL,
	ROLE_NAME varchar(50) NULL,
	IS_ACTIVE varchar(1) NOT NULL,
	SYSTEM_CREATED varchar(1) NOT NULL,
	CREATED_BY varchar(20) NOT NULL,
	CREATED_DATE datetime NOT NULL,
	UPDATED_BY varchar(20) NOT NULL,
	UPDATED_DATE datetime NOT NULL,
	PRIMARY KEY(ROLE_ID)
)

--用户仓库关系表
CREATE TABLE USER_WH(
	USER_ID varchar(20) NOT NULL,
	WH_ID varchar(20) NOT NULL,
	IS_DEFAULT varchar(1) NULL,
	CREATED_BY varchar(20) NOT NULL,
	CREATED_DATE datetime NOT NULL,
	UPDATED_BY varchar(20) NOT NULL,
	UPDATED_DATE datetime NOT NULL,
	PRIMARY KEY(USER_ID,WH_ID)
)
go
--插入仓库-用户关系表
  insert into USER_WH( USER_ID,WH_ID ,IS_DEFAULT ,CREATED_BY,CREATED_DATE ,UPDATED_BY ,UPDATED_DATE) values
      ('admin','10','1','admin','2011-11-11','admin','2011-11-11')

--功能点分组组
CREATE TABLE FUNCTION_GROUP
(
	GROUP_ID varchar(20) NOT NULL,
	SEQ_NO int NULL,
	MENU_STRING varchar(50) NULL,
	LEVEL int NULL,
	IS_ROLE_CTRL varchar(1) NULL,
	PARENT_GROUP_GID varchar(20) NULL,
	IS_ACTIVE varchar(1) NOT NULL,
	CREATED_BY varchar(20) NOT NULL,
	CREATED_DATE datetime NOT NULL,
	UPDATED_BY varchar(20) NOT NULL,
	UPDATED_DATE datetime NOT NULL,
	PRIMARY KEY(GROUP_ID)
)

--功能点列表 
CREATE TABLE FUNCTION_LIST
(
	FUNCTION_ID varchar(20) NOT NULL,
	GROUP_ID varchar(20) NULL,
	SEQ_NO int NULL,
	FORM_NAME varchar(50) NULL,
	MENU_STRING varchar(50) NULL,
	IS_GLOBAL varchar(1) NOT NULL,
	IS_WAREHOUSE varchar(1) NOT NULL,
	IS_ROLE_CRTL varchar(1) NOT NULL,
	URL varchar(100) NULL,
	REMARK varchar(100) NULL,
	IS_ACTIVE varchar(1) NOT NULL,
	CREATED_BY varchar(20) NOT NULL,
	CREATED_DATE datetime NOT NULL,
	UPDATED_BY varchar(20) NOT NULL,
	UPDATED_DATE datetime NOT NULL,
	PRIMARY KEY(FUNCTION_ID)
)

--用户角色表
CREATE TABLE USER_ROLE(
	USER_ID varchar(20) NOT NULL,
	ROLE_ID varchar(20) NOT NULL,
	CREATED_BY varchar(20) NOT NULL,
	CREATED_DATE datetime NOT NULL,
	UPDATED_BY varchar(20) NOT NULL,
	UPDATED_DATE datetime NOT NULL,
	PRIMARY KEY(USER_ID,ROLE_ID)
 )

--角色功能点表
CREATE TABLE ROLE_FUNCTION(
	ROLE_ID varchar(20) NOT NULL,
	FUNCTION_ID varchar(20) NOT NULL,
	CREATED_BY varchar(20) NOT NULL,
	CREATED_DATE datetime NOT NULL,
	UPDATED_BY varchar(20) NOT NULL,
	UPDATED_DATE datetime NOT NULL,
	PRIMARY KEY(ROLE_ID,FUNCTION_ID)
)

--角色-功能点组表
CREATE TABLE ROLE_FUNCTION_GROUP(
	ROLE_ID varchar(20) NOT NULL,
	GROUP_ID varchar(20) NOT NULL,
	CREATED_BY varchar(20) NOT NULL,
	CREATED_DATE datetime NOT NULL,
	UPDATED_BY varchar(20) NOT NULL,
	UPDATED_DATE datetime NOT NULL,
	PRIMARY KEY(ROLE_ID,GROUP_ID)
)

--translation主表
CREATE TABLE TRANSLATION(
	ROW_ID int  NOT NULL,--主键
	TRANSLATION_ID varchar(600) NOT NULL,--translation的ID
	ACTION_TYPE int not null default (1) ,--动作类型1，容器中打开窗口，2，弹出，3，启动exe
	ARGMENT1 varchar(50) NOT NULL,--参数1
	ARGMENT2 varchar(50) NOT NULL,--参数2
	ARGMENT3 varchar(250) NOT NULL,--参数3
	ARGMENT4 varchar(250) NOT NULL,--参数4
	LANG varchar(50) NOT NULL,--语言
	ITEM_ID varchar(400) NULL,--项id
	ITEM_TYPE varchar(200) NULL,--项类型
	COUNTRY varchar(50) NOT NULL,--国家
	CAPTION varchar(1000) NOT NULL,--标签
	CREATED_BY varchar(20) NOT NULL,
	CREATED_DATE datetime NOT NULL,
	UPDATED_BY varchar(20) NOT NULL,
	UPDATED_DATE datetime NOT NULL,
	PRIMARY KEY(ROW_ID)
 )

create table USER_TOKEN_LIST
(
	SESSION_ID					VARCHAR(200) not null,
	USER_ID						VARCHAR(50) not null,
	USER_NAME				VARCHAR(50) default '',
	CREATE_TIME				datetime   ,
	UPDATE_TIME				datetime  default getdate(),
	CREATED_BY varchar(20) NOT NULL,
	CREATED_DATE datetime NOT NULL,
	UPDATED_BY varchar(20) NOT NULL,
	UPDATED_DATE datetime NOT NULL,
	OBLIGATE_CHAR1 varchar(100), --预留字段1
	OBLIGATE_CHAR2 varchar(100), --预留字段2
	OBLIGATE_CHAR3 varchar(100), --预留字段3
	OBLIGATE_CHAR4 varchar(100), --预留字段4
	OBLIGATE_CHAR5 varchar(100), --预留字段5
	OBLIGATE_NUMERIC1  numeric(16,4), --预留字段1
	OBLIGATE_NUMERIC2  numeric(16,4), --预留字段2
	OBLIGATE_NUMERIC3  numeric(16,4), --预留字段3
	OBLIGATE_NUMERIC4  numeric(16,4), --预留字段4
	OBLIGATE_NUMERIC5  numeric(16,4), --预留字段5
  primary key(SESSION_ID)
)
go

--drop view MENU_LIST
CREATE VIEW MENU_LIST 
as
SELECT DISTINCT FG.GROUP_ID,T.[CAPTION],FG.PARENT_GROUP_GID,FL.URL,T.LANG,T.COUNTRY,
FL.FUNCTION_ID,FG.SEQ_NO  FROM FUNCTION_GROUP FG 
LEFT JOIN FUNCTION_LIST FL ON FG.GROUP_ID = FL.GROUP_ID 
 AND FL.IS_ACTIVE='Y'   LEFT JOIN ROLE_FUNCTION  RF 
 ON RF.FUNCTION_ID = FL.FUNCTION_ID  
 INNER JOIN TRANSLATION T 
 ON FG.GROUP_ID = T.ITEM_ID AND T.ITEM_TYPE='FUNCTION_GROUP' 